home *** CD-ROM | disk | FTP | other *** search
- assume cs:text
- text segment para public 'CODE'
-
- extrn vramoff:dword
- public fbread16
- fbread16 proc near
- push ebp
- push ebx
- push ecx
- push edx
- push esi
- push edi
- mov edi,28[esp] ; edi <-- save
- mov edx,36[esp] ; edx <-- y
- shl edx,10 ; y * 1024
- mov eax,32[esp] ; eax <-- x
- add eax,eax ; x * 2
- add edx,eax
- add edx,vramoff ; edx <-- vram address
- mov ebp,40[esp] ; ebp <-- width
- mov ebx,44[esp] ; ebx <-- height
- #0:
- mov esi,edx ; esi <-- vram
- mov ecx,ebp ; ecx <-- width
- #1:
- mov ax,fs:[esi]
- mov [edi],ax
- add esi,2
- add edi,2
- loop #1
-
- add edx,0400H
- dec ebx
- jne SHORT #0
- pop edi
- pop esi
- pop edx
- pop ecx
- pop ebx
- pop ebp
- ret
- fbread16 endp
-
- public fbwrite16
- fbwrite16 proc near
- push ebx
- push ecx
- push edx
- push esi
- push edi
- push es
- mov ax,fs
- mov es,ax
- mov esi,28[esp] ; esi <-- buf
- mov edx,36[esp] ; edx <-- y
- shl edx,10 ; y * 1024
- mov eax,32[esp] ; eax <-- x
- add eax,eax ; x * 2
- add edx,eax
- add edx,vramoff ; edx <-- vram offset
- mov eax,40[esp] ; eax <-- width
- mov ebx,44[esp] ; ebx <-- height
- cld
- #0:
- mov edi,edx ; edi <-- vram
- mov ecx,eax ; ecx <-- width
- rep movsw
- add edx,0400H
- add esi,48[esp]
- dec ebx
- jne SHORT #0
- pop es
- pop edi
- pop esi
- pop edx
- pop ecx
- pop ebx
- ret
- fbwrite16 endp
-
- text ends
- end
-